Computer networks that facilitate data processing are becoming increasingly common. Such networks include multiple nodes, which are typically computers, that may be distributed over vast distances and connected by communications links, such as telephone wires. Nodes communicate with each other using packets, which are the basic units of information transfer. A packet contains data surrounded by control and routing information supplied by the various nodes.
Sending, receiving, and processing of packets have an overhead, or associated cost. That is, it takes time to receive a packet at a node, to examine the packet's control information, and to determine the next action. One way to reduce the packet overhead is a method called packet training. This packet-training method consolidates individual packets into a group, called a train, so that a node can process the entire train of packets at once. The word "train" comes from a train of railroad cars. It is less expensive to form a train of railroad cars pulled by a single locomotive than it is to give each railroad car its own locomotive. Analogously, processing a train of packets has less overhead, and thus better performance, than processing each packet individually.
In a typical training method, a node will accumulate packets until the train reaches a fixed target-length. Then the node will process or retransmit the entire thin at once. In order to ensure that the accumulated packets are eventually handled since the packet arrival rate at the node is unpredictable, the method will start a timer wizen the node receives the train's first packet. When the timer expires, the node will end the train and process it even if train has not reached its target length.
This training method works well in times of heavy packet-traffic because the timer never expires. But in times of light packet-traffic, the packets that the node accumulates experience poor performance while waiting in vain for additional packets to arrive, and the ultimate timer expiration introduces additional processing overhead.
Thus, there is a need for a packet-training mechanism that will overcome the disadvantages of the prior art and provide improved performance even in times of a light, variable, or unpredictable packet-traffic rate.